// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from "vue";
import App from "./App";
import router from "./router/index";
import store from "./store";
import ElementUI from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
// import NProgress from "nprogress"; // Progress 进度条
import "nprogress/nprogress.css"; // Progress 进度条 样式
// import "vue-multiselect/dist/vue-multiselect.min.css"; // 多选框组件css
// const _import = require("router/_import_" + process.env.NODE_ENV);
import $ from "jquery";
import vueWaves from "./directive/waves"; // 水波纹指令
import "../../styles/icon-font/iconfont.css"; // 图标插件引入

import '@/utils/map/css/echart/iconfont.css'; // echart图标文件
// import "@supermap/iclient-mapboxgl";
// import "@supermap/iclient-mapboxgl/dist/iclient-mapboxgl-es6";

import VueDraggableResizable from 'vue-draggable-resizable'

// optionally import default styles
import 'vue-draggable-resizable/dist/VueDraggableResizable.css'

Vue.component('vue-draggable-resizable', VueDraggableResizable)


// 全局事件总线
window.EventBus = new Vue()

// 注册到全局
Vue.use(vueWaves);
// 注册全局插件
Vue.use(ElementUI);

// register global progress.
// router.beforeEach((to, from, next) => {
//   /* 开启Progress */
//   NProgress.start();
//   /* 判断当前用户是否已拉取完user_info信息 */
//   if (store.getters.id === '') {
//     store.dispatch('GetUserInfo').then(res => {
//       if (res.status) {
//         store.dispatch('GenerateRoutes').then(()=>{
//           next({ ...to });
//         });
//       }
//     }).catch(() => {
//       store.dispatch('LogOut').then(() => {
//         next({ path: '/' });
//       });
//     });
//
//   } else {
//     next();
//   }
//   NProgress.done();
// });
//
// router.afterEach(() => {
//   /* 结束Progress */
//   NProgress.done();
// });

// 关闭生产模式下给出的提示
Vue.config.productionTip = false;

// 生产环境错误日志
if (process.env.NODE_ENV === "production") {
  Vue.config.errorHandler = function (err, vm) {
    console.log(err, window.location.href);
    errLog.pushLog({
      err,
      url: window.location.href,
      vm
    });
  };
}

// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子：
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
Date.prototype.format = function (fmt) {
  // author: meizz
  let o = {
    "M+": this.getMonth() + 1, // 月份
    "d+": this.getDate(), // 日
    "h+": this.getHours(), // 小时
    "m+": this.getMinutes(), // 分
    "s+": this.getSeconds(), // 秒
    "q+": Math.floor((this.getMonth() + 3) / 3), // 季度
    S: this.getMilliseconds() // 毫秒
  };
  if (/(y+)/.test(fmt))
    fmt = fmt.replace(
      RegExp.$1,
      (this.getFullYear() + "").substr(4 - RegExp.$1.length)
    );
  for (let k in o) {
    if (new RegExp("(" + k + ")").test(fmt))
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
      );
  }
  return fmt;
};
new Vue({
  el: "#app",
  router,
  store,
  template: "<App/>",
  components: {
    App
  }
});
